package com.cskaoyan.bean;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;

/**
 * @title: WXHandleOptionBean
 * @Author wangguangwu
 * @Description:
 * @Date: 2021/4/12 9:08 下午
 * <p>
 * 101 未付款          -> 付款/取消订单
 * 102 用户取消        -> 删除订单
 * 103 系统取消        -> 删除订单
 * <p>
 * 201 已付款（未发货） -> 退款（不能取消订单）
 * 202 申请退款        -> 订单取消，退款中
 * 203 已退款          -> 删除订单
 * <p>
 * 301 已发货（未收货）  -> 确认收货/退款（不能取消订单）
 * <p>
 * 401 用户收货         -> 再次购买，判断 comment（comment == 0），删除订单（逻辑删除）
 * 402 系统收货         -> 再次购买，判断 comment（comment == 0），删除订单（逻辑删除）
 */
@Data
@Accessors(chain = true)
@AllArgsConstructor
@NoArgsConstructor
public class WXHandleOptionBean {

    /**
     * 取消订单
     */
    private Boolean cancel;

    /**
     * 删除订单
     */
    private Boolean delete;

    /**
     * 付款
     */
    private Boolean pay;

    /**
     * 评价
     */
    private Boolean comment;

    /**
     * 确认订单
     */
    private Boolean confirm;

    /**
     * 退款
     */
    private Boolean refund;

    /**
     * 再次购买
     */
    private Boolean rebuy;

    /**
     * 未付款
     *
     * @return wxHandleOptionBean
     */
    public static WXHandleOptionBean unpay() {
        WXHandleOptionBean wxHandleOptionBean = new WXHandleOptionBean();
        wxHandleOptionBean.setPay(true);
        wxHandleOptionBean.setCancel(true);
        return wxHandleOptionBean;
    }

    /**
     * 未发货
     *
     * @return
     */
    public static WXHandleOptionBean unship() {
        WXHandleOptionBean wxHandleOptionBean = new WXHandleOptionBean();
        wxHandleOptionBean.setRefund(true);
        return wxHandleOptionBean;
    }


    /**
     * 已发货
     *
     * @return
     */
    public static WXHandleOptionBean unreceive() {
        WXHandleOptionBean wxHandleOptionBean = new WXHandleOptionBean();
        wxHandleOptionBean.setConfirm(true);
        return wxHandleOptionBean;
    }

    public static WXHandleOptionBean uncommentAndReceive() {
        WXHandleOptionBean wxHandleOptionBean = new WXHandleOptionBean();
        wxHandleOptionBean.setComment(true);
        wxHandleOptionBean.setDelete(true);
        wxHandleOptionBean.setRebuy(true);
        return wxHandleOptionBean;
    }
}
